package com.woniuxy.yoga.business.service;

import com.woniuxy.yoga.business.dao.model.BusinessStore;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.yoga.business.model.dto.businessstore.BusinessStoreByAccountIdDTO;
import com.woniuxy.yoga.business.model.dto.businessstore.BusinessStoreByIdDTO;
import com.woniuxy.yoga.business.model.dto.businessstore.BusinessStoreDTO;
import com.woniuxy.yoga.business.model.dto.businessstore.SelBusinessStoreDTO;
import com.woniuxy.yoga.business.model.param.businessaccount.UpdateHeaderParam;
import com.woniuxy.yoga.business.model.param.businessstore.BusinessStoreSelectPageParam;
import com.woniuxy.yoga.business.model.param.businessstore.BusinessStoreUpdateParam;
import com.woniuxy.yoga.commons.core.model.PageInfo;

import java.util.List;

/**
 * <p>
 * 商家门店详情 服务类
 * </p>
 *
 * @author 韦用文,刘存益,郎腾霄
 * @since 2023年11月28日
 */
public interface BusinessStoreService extends IService<BusinessStore> {
    /**
     * 分页查询门店信息
     * @return
     * @throws Exception
     */
    PageInfo selectBusinessStore(BusinessStoreSelectPageParam param);
    /**
     * 门店资料变更
     * @param param
     * @return
     * @throws Exception
     */
    Boolean updateBusinessStore(BusinessStoreUpdateParam param);
    /**
     * 注销门店
     * @param storeId
     * @return
     * @throws Exception
     */
    void deleteBusinessStore(Integer storeId);
    /**
     * 禁用门店
     * @param storeId
     * @return
     * @throws Exception
     */
    void disableBusinessStore(Integer storeId);
    /**
     * 启用门店
     * @param storeId
     * @return
     * @throws Exception
     */
    void normalBusinessStore(Integer storeId);
    /**
     * 根据商家id查询门店信息,商家状态正常、门店状态正常且已缴费
     * @param accountId
     * @return
     * @throws Exception
     */
    BusinessStoreByAccountIdDTO selBusinessStoreByAccountId(Integer accountId);
    /**
     * 商家查询门店信息
     * @param businessId
     * @return
     * @throws Exception
     */
    BusinessStoreByIdDTO storeSelBusinessStore(Integer businessId);
    /**
     * 通过门店ID查询门店信息
     * @param storeId
     * @return
     */
    BusinessStoreDTO selByStoreId(Integer storeId);
    /**
     * 查询门店信息集合
     * @return
     */
    List<SelBusinessStoreDTO> searchBusinessStore();
    /**
     * 商家修改门店头像
     * @param param
     * @param
     * @return
     */
    void updateStoreHeader(UpdateHeaderParam param) throws Exception;
}
